Ubuntu22.04(Linux)源码编译安装 RocketMQ 和 RocketMQ |
您所在的位置:网站首页 › rocketmq 常用命令 › Ubuntu22.04(Linux)源码编译安装 RocketMQ 和 RocketMQ |
本文基于腾讯云新加坡 2H4G 服务器。连接服务器的软件用的是 termius。 ⚠️警告 Warning:由于克隆仓库最新的源码编译安装 RocketMQ,可能有潜在的Bug或风险,建议不要在生产环境这么做。我只是用来学习,所以即使有潜在的 Bug 我也没什么损失😎 编译安装 RocketMQ克隆 RocketMQ Github 仓库 github.com/apache/rock… git clone https://github.com/apache/rocketmq.git 复制代码安装 Java 环境 sudo apt update sudo apt install openjdk-11-jdk 复制代码安装完成后,配置 Java 环境变量。 nano ~/.bashrc 复制代码按 ALT + / 跳转到最后,在最后几行添加 export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin 复制代码按 Ctrl + X,然后输入 y,再按回车保存退出。 接着更新一下环境变量 source ~/.bashrc 复制代码安装 Maven sudo apt install maven 复制代码进入刚刚 clone 下来的 rocketmq 目录,并用 maven 编译。关于 build 命令的更多问题可以看 官方GitHub仓库Build说明 cd rocketmq/ mvn -Prelease-all -DskipTests clean install -U 复制代码接下来就是等待编译完成,当看到像下图一样的时候就是编译成功了。 在 ~/rocketmq/distribution/target/rocketmq-5.0.1-SNAPSHOT/rocketmq-5.0.1-SNAPSHOT/ 目录下可以看到编译结果。将这个文件夹复制到用户根目录下,并重命名为rocketmq-5.0.1。 cd ~ cp -r ~/rocketmq/distribution/target/rocketmq-5.0.1-SNAPSHOT/rocketmq-5.0.1-SNAPSHOT ~/rocketmq-5.0.1 复制代码接下来将这个 rocketmq-5.0.1 文件夹添加到环境变量 nano ~/.bashrc 复制代码按 ALT + / ,在最后几行加入 export ROCKETMQ_HOME=~/rocketmq-5.0.1 export PATH=$PATH:$ROCKETMQ_HOME/bin 复制代码Ctrl + X ,按y,然后回车保存。 然后更新一下环境变量 source ~/.bashrc 复制代码验证刚刚配置的环境变量是否生效 echo $ROCKETMQ_HOME 复制代码像下图这样就是生效了。 建立一个新的 screen 使 mqnamesrv 后台运行,命名为 mqname screen -S mqname 复制代码在新的 screen 中 cd 进入刚刚复制过来的 rocketmq-5.0.1 文件夹中的 bin 目录 cd rocketmq-5.0.1/bin/ 复制代码启动 Name Server 服务 sh mqnamesrv 复制代码出现以下报错 原因是 mqnamesrv 默认配置的 jvm 虚拟机内存比较大,我这台 4G 内存的服务器就不能直接运行。接下来 nano runserver.sh 复制代码找到下图这两个地方,将它们改成 512m 改完后 Ctrl + X ,按y,然后回车保存 改完之后是下图这样的 再次启动 Name Server 服务 sh mqnamesrv 复制代码如下图所示, Name Server 成功启动
按 Ctrl + A + D 退出 mqname 这个 screen。 通过下面命令查看 NameServer 运行状态(Tip:jps 是 jdk 提供的一个查看当前 java 进程的小工具) jps -l 复制代码同样的,建立一个新的 screen 使 mqbroker 后台运行,命名为 mqbroker screen -S mqbroker 复制代码然后 cd ~/rocketmq-5.0.1/bin/ sh mqbroker -n localhost:9876 复制代码出现以下报错,原因同样是默认配置的 jvm 虚拟机内存比较大: 输入命令 nano runbroker.sh 复制代码找到下图这个地方,将它改成 512m ,改完后Ctrl + X ,按y,然后回车保存。 更改后应该像下图这样: 再次启动Broker sh mqbroker -n localhost:9876 复制代码从下图可以看到 Broker 成功启动。 最后,按 Ctrl + A + D 退出这个 screen。 额外提一嘴:可以用 screen -list 命令查看刚才创建的两个 screen,像下图这样: 要想返回某个 screen 可以用 screen -r 你起的名称 命令,比如我想返回 mqname 这个 screen ,可以 screen -r mqname 。 如果你不习惯用 screen ,用 nohup 也是可以的,就是在启动 NameServer 和 Broker 的命令分别换成 nohup sh mqnamesrv & 和 nohup sh mqbroker -n localhost:9876 & 此外,还可以用下面的命令查看日志 tail -f ~/logs/rocketmqlogs/broker.log 复制代码 模拟发送消息和消费消息验证功能是否正常再次通过下面命令查看 NameServer 和 Broker 运行状态 jps -l 复制代码目前我们 NameServer 和 Broker 都已经启动成功,应该可以进行发送和消费消息了。RocketMQ 默认提供了一个模拟发送消息和消费消息的测试类,我们来验证一下。 cd rocketmq-5.0.1/bin/ sh tools.sh org.apache.rocketmq.example.quickstart.Producer 复制代码又出现报错了
这时候需要我们设置一个临时环境变量(或者直接加到 ~/.bashrc 文件后面) 按 Ctrl + C 终止脚本,然后执行下面的命令 export NAMESRV_ADDR=localhost:9876 复制代码然后再次启动 Producer(生产者) sh tools.sh org.apache.rocketmq.example.quickstart.Producer 复制代码看到下图这样就是说明消息投递成功。 接下来就是启动 Consumer(消费者) sh tools.sh org.apache.rocketmq.example.quickstart.Consumer 复制代码像下图这样就是消费成功了。 Dashboard 是由 RocketMQ 官方提供的组件,它能够给我们的集群提供一个可视化的界面,来帮我们更好的运维、监控整个集群。 rocket-dashboard 的前身是在 rocketmq-externals 里的 rocketmq-console,现在,rocketmq-console 这个项目已经被重命名、并且挪到了新的仓库中去了。 分别执行以下几行命令 git clone https://github.com/apache/rocketmq-dashboard.git cd rocketmq-dashboard/ mvn clean package -Dmaven.test.skip=true 复制代码然后等待编译完成,像下图这样: 然后新建一个 screen,命名为 dashboard screen -S dashboard 复制代码然后执行以下命令。如果运行不了,检查一下当前是不是在 ~/rocketmq-dashboard 目录下 java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar 复制代码出现下图这样的 Spring 标志说明启动成功。 默认端口是 8080,去腾讯云服务器控制台中的 防火墙 将端口 8080 添加进规则,然后在浏览器输入 你的公网IP:8080 访问 Dashboard (Tip:英语不好的小伙伴不用怕,右上角可以更换成中文) 最终看到下图这样就安装成功啦! 点进 集群,可以看到刚刚测试的 1000 条消息。 找到下图中的 loginRequired,将 false 改成 true。
然后添加管理员 格式:每行定义一个用户,username=password[,N] N 是可选项,可以为 0(普通用户); 1(管理员) 修改完后保存退出。然后重新编译。 mvn clean package -Dmaven.test.skip=true 复制代码再启动 java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar 复制代码这时候就需要账号密码才能进仪表盘了。 都看到这里了,点个赞再走呗。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |